using System;
using System.Globalization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using ns20;

namespace ns16
{
	internal class Class113 : JsonSerializer
	{
		private readonly Class137 class137_0;

		private readonly Class138 class138_0;

		private readonly JsonSerializer jsonSerializer_0;

		public override IReferenceResolver IReferenceResolver_0
		{
			get
			{
				return jsonSerializer_0.IReferenceResolver_0;
			}
			set
			{
				jsonSerializer_0.IReferenceResolver_0 = value;
			}
		}

		public override ITraceWriter ITraceWriter_0
		{
			get
			{
				return jsonSerializer_0.ITraceWriter_0;
			}
			set
			{
				jsonSerializer_0.ITraceWriter_0 = value;
			}
		}

		public override JsonConverterCollection JsonConverterCollection_0 => jsonSerializer_0.JsonConverterCollection_0;

		public override DefaultValueHandling DefaultValueHandling_0
		{
			get
			{
				return jsonSerializer_0.DefaultValueHandling_0;
			}
			set
			{
				jsonSerializer_0.DefaultValueHandling_0 = value;
			}
		}

		public override IContractResolver IContractResolver_0
		{
			get
			{
				return jsonSerializer_0.IContractResolver_0;
			}
			set
			{
				jsonSerializer_0.IContractResolver_0 = value;
			}
		}

		public override MissingMemberHandling MissingMemberHandling_0
		{
			get
			{
				return jsonSerializer_0.MissingMemberHandling_0;
			}
			set
			{
				jsonSerializer_0.MissingMemberHandling_0 = value;
			}
		}

		public override NullValueHandling NullValueHandling_0
		{
			get
			{
				return jsonSerializer_0.NullValueHandling_0;
			}
			set
			{
				jsonSerializer_0.NullValueHandling_0 = value;
			}
		}

		public override ObjectCreationHandling ObjectCreationHandling_0
		{
			get
			{
				return jsonSerializer_0.ObjectCreationHandling_0;
			}
			set
			{
				jsonSerializer_0.ObjectCreationHandling_0 = value;
			}
		}

		public override ReferenceLoopHandling ReferenceLoopHandling_0
		{
			get
			{
				return jsonSerializer_0.ReferenceLoopHandling_0;
			}
			set
			{
				jsonSerializer_0.ReferenceLoopHandling_0 = value;
			}
		}

		public override PreserveReferencesHandling PreserveReferencesHandling_0
		{
			get
			{
				return jsonSerializer_0.PreserveReferencesHandling_0;
			}
			set
			{
				jsonSerializer_0.PreserveReferencesHandling_0 = value;
			}
		}

		public override TypeNameHandling TypeNameHandling_0
		{
			get
			{
				return jsonSerializer_0.TypeNameHandling_0;
			}
			set
			{
				jsonSerializer_0.TypeNameHandling_0 = value;
			}
		}

		public override FormatterAssemblyStyle FormatterAssemblyStyle_0
		{
			get
			{
				return jsonSerializer_0.FormatterAssemblyStyle_0;
			}
			set
			{
				jsonSerializer_0.FormatterAssemblyStyle_0 = value;
			}
		}

		public override ConstructorHandling ConstructorHandling_0
		{
			get
			{
				return jsonSerializer_0.ConstructorHandling_0;
			}
			set
			{
				jsonSerializer_0.ConstructorHandling_0 = value;
			}
		}

		public override SerializationBinder SerializationBinder_0
		{
			get
			{
				return jsonSerializer_0.SerializationBinder_0;
			}
			set
			{
				jsonSerializer_0.SerializationBinder_0 = value;
			}
		}

		public override StreamingContext StreamingContext_0
		{
			get
			{
				return jsonSerializer_0.StreamingContext_0;
			}
			set
			{
				jsonSerializer_0.StreamingContext_0 = value;
			}
		}

		public override Formatting Formatting_0
		{
			get
			{
				return jsonSerializer_0.Formatting_0;
			}
			set
			{
				jsonSerializer_0.Formatting_0 = value;
			}
		}

		public override DateFormatHandling DateFormatHandling_0
		{
			get
			{
				return jsonSerializer_0.DateFormatHandling_0;
			}
			set
			{
				jsonSerializer_0.DateFormatHandling_0 = value;
			}
		}

		public override DateTimeZoneHandling DateTimeZoneHandling_0
		{
			get
			{
				return jsonSerializer_0.DateTimeZoneHandling_0;
			}
			set
			{
				jsonSerializer_0.DateTimeZoneHandling_0 = value;
			}
		}

		public override DateParseHandling DateParseHandling_0
		{
			get
			{
				return jsonSerializer_0.DateParseHandling_0;
			}
			set
			{
				jsonSerializer_0.DateParseHandling_0 = value;
			}
		}

		public override FloatFormatHandling FloatFormatHandling_0
		{
			get
			{
				return jsonSerializer_0.FloatFormatHandling_0;
			}
			set
			{
				jsonSerializer_0.FloatFormatHandling_0 = value;
			}
		}

		public override FloatParseHandling FloatParseHandling_0
		{
			get
			{
				return jsonSerializer_0.FloatParseHandling_0;
			}
			set
			{
				jsonSerializer_0.FloatParseHandling_0 = value;
			}
		}

		public override StringEscapeHandling StringEscapeHandling_0
		{
			get
			{
				return jsonSerializer_0.StringEscapeHandling_0;
			}
			set
			{
				jsonSerializer_0.StringEscapeHandling_0 = value;
			}
		}

		public override string String_0
		{
			get
			{
				return jsonSerializer_0.String_0;
			}
			set
			{
				jsonSerializer_0.String_0 = value;
			}
		}

		public override CultureInfo CultureInfo_0
		{
			get
			{
				return jsonSerializer_0.CultureInfo_0;
			}
			set
			{
				jsonSerializer_0.CultureInfo_0 = value;
			}
		}

		public override int? Prop_0
		{
			get
			{
				return jsonSerializer_0.Prop_0;
			}
			set
			{
				jsonSerializer_0.Prop_0 = value;
			}
		}

		public override bool Boolean_0
		{
			get
			{
				return jsonSerializer_0.Boolean_0;
			}
			set
			{
				jsonSerializer_0.Boolean_0 = value;
			}
		}

		public override event EventHandler<ErrorEventArgs> Event_0
		{
			add
			{
				jsonSerializer_0.Event_0 += value;
			}
			remove
			{
				jsonSerializer_0.Event_0 -= value;
			}
		}

		internal Class136 method_4()
		{
			if (class137_0 != null)
			{
				return class137_0;
			}
			return class138_0;
		}

		public Class113(Class137 serializerReader)
		{
			Class204.smethod_2(serializerReader, "serializerReader");
			class137_0 = serializerReader;
			jsonSerializer_0 = serializerReader.jsonSerializer_0;
		}

		public Class113(Class138 serializerWriter)
		{
			Class204.smethod_2(serializerWriter, "serializerWriter");
			class138_0 = serializerWriter;
			jsonSerializer_0 = serializerWriter.jsonSerializer_0;
		}

		internal override object Newtonsoft_002EJson_002EJsonSerializer_002E_206E_200E_206C_206D_206F_206D_206B_206F_202B_202B_202B_202E_202E_202C_206A_206D_202B_200E_200C_200D_202D_202C_200E_200B_202E_206C_206A_202A_200B_200D_206D_206A_200D_202C_200D_200D_200F_200B_206F_202E_202E(JsonReader jsonReader_0, Type type_0)
		{
			if (class137_0 != null)
			{
				return class137_0.method_5(jsonReader_0, type_0, bool_1: false);
			}
			return jsonSerializer_0.Deserialize(jsonReader_0, type_0);
		}

		internal virtual void Newtonsoft_002EJson_002EJsonSerializer_002E_200B_200E_200F_206C_206F_202D_200E_200F_200C_202A_202B_202A_202A_202D_206E_206F_200B_200B_200C_202D_202D_206A_200E_200B_202B_206C_206D_202D_206E_200C_206E_206C_206E_206F_206C_206F_200B_202A_202D_202A_202E(JsonReader jsonReader_0, object object_0)
		{
			if (class137_0 != null)
			{
				class137_0.method_3(jsonReader_0, object_0);
			}
			else
			{
				jsonSerializer_0.Populate(jsonReader_0, object_0);
			}
		}

		internal virtual void Newtonsoft_002EJson_002EJsonSerializer_002E_200E_202E_206E_206B_200D_200D_200F_206A_200D_202C_202C_202D_202B_206D_200E_206C_206A_200F_200C_202A_202A_202B_202A_200C_206F_206A_200D_200F_200D_202A_200D_206F_202C_202D_200E_202B_206B_200D_206C_200C_202E(JsonWriter jsonWriter_0, object object_0, Type type_0)
		{
			if (class138_0 != null)
			{
				class138_0.method_3(jsonWriter_0, object_0, type_0);
			}
			else
			{
				jsonSerializer_0.Serialize(jsonWriter_0, object_0);
			}
		}
	}
}
